package BehavioralPattern.Visitor;

import BehavioralPattern.Visitor.element.CommonEmployee;
import BehavioralPattern.Visitor.element.Employee;
import BehavioralPattern.Visitor.element.Manager;

import java.util.ArrayList;
import java.util.List;

/**
 * @Classname : ObjectStructure
 * @Description : 结构对象
 * 元素生产者，一般容纳在多个不同类、不同接口的容器，如List、Set、Map等，在项目中一般很少抽象这个角色
 * @Author : chentianyu
 * @Date 2023/3/12 11:13
 */


public class ObjectStructure {

    public static List<Employee> createElement() {
        List<Employee> employeeList = new ArrayList<>();

        // 产生张三这个普通员工
        CommonEmployee ZhangSan = new CommonEmployee();
        ZhangSan.setName("张三");
        ZhangSan.setSalary(1800);
        ZhangSan.setSex(Employee.MALE);
        ZhangSan.setJob("编写程序，搬砖苦工");
        employeeList.add(ZhangSan);

        // 产生李四这个普通员工
        CommonEmployee LiSi = new CommonEmployee();
        LiSi.setName("李四");
        LiSi.setSalary(1900);
        LiSi.setSex(Employee.FEMALE);
        LiSi.setJob("设计页面，搬砖苦工");
        employeeList.add(LiSi);

        // 产生王五这个管理者
        Manager WangWu = new Manager();
        WangWu.setName("王五");
        WangWu.setSalary(18750);
        WangWu.setSex(Employee.MALE);
        WangWu.setPerformance("没有业绩，向上管理");
        employeeList.add(WangWu);

        return employeeList;
    }
}
